package com.project.controller.web;

import com.project.common.utils.MyPageHelper;
import com.project.entity.Feedback;
import com.project.myBeans.R;
import com.project.service.FeedBackService;
import com.project.service.base.BaseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.*;

/**
 * @Author: TateBrown
 * @date: 2018/5/26 17:45
 * @param:
 * @return:
 */
@EnableAutoConfiguration
@RestController
@RequestMapping("/feedback")
@Api(description = "反馈接口", value = "feedback")
public class FeedBackController extends BaseService {
    @Autowired
    private FeedBackService feedBackService;

    /**
     * TateBrown 2018年5月26日
     *
     * @param feedback
     * @return
     */
    @ApiOperation("添加单条反馈记录")
    @PostMapping("/addOne")
    public R addOne(@RequestBody Feedback feedback){
        try{
            feedBackService.addOne(feedback);
            return R.ok("添加成功");
        }catch (Exception e){
            e.printStackTrace();
            return R.error("程序异常");
        }
    }
    /**
     * TateBrown 2018年5月26日
     *
     * @param id
     * @return
     */
    @ApiOperation("删除单个")
    @GetMapping("/removeOne/{id}")
    public R removeOne(@PathVariable("id") Integer id){
        try{
           if(checkDeleteUpdateIsSuccess(feedBackService.removeOneById(id))){
               return R.ok("删除成功");
           }else{
               return R.error("删除失败");
           }

        }catch(Exception e){
            e.printStackTrace();
            return R.error("程序异常");
        }
    }
    /**
     * TateBrown 2018年5月26日
     *
     * @param feedback
     * @return
     */
    @ApiOperation("修改单条反馈记录")
    @PostMapping("/modifyOne")
    public R modifyOne(@RequestBody Feedback feedback){
        try{
             if(checkDeleteUpdateIsSuccess(feedBackService.modifyOneById(feedback))){
                 return R.ok("修改成功");
             }else{
                 return R.error("修改失败");
             }
        }catch (Exception e){
            e.printStackTrace();
            return R.error("程序异常");
        }
    }
    /**
     * TateBrown 2018年5月26日
     *
     * @param id
     * @return
     */
    @ApiOperation("根据id查询单条反馈记录")
    @GetMapping("/findOneById/{id}")
    public R findOneById(@PathVariable("id") Integer id){
        try{
           return R.ok("查找成功").put("data",feedBackService.findOneById(id));
        }catch (Exception e){
            e.printStackTrace();
            return R.error("程序异常");
        }
    }
    /**
     * TateBrown 2018年5月26日
     *
     * @param
     * @return
     */
    @ApiOperation("查找全部")
    @GetMapping("/findAll")
    public R findALL(){
        try{
          return R.ok("查找成功").put("data",feedBackService.findAll());
        }catch (Exception e){
            e.printStackTrace();
            return R.error("程序异常");
        }
    }
    /**
     * TateBrown 2018年5月26日
     *
     * @param feedback
     * @return
     */
    @ApiOperation("根据所有条件分页查找")
    @PostMapping("/findBatchByAllCondition")
    public R findBatchByAllCondition(@RequestBody Feedback feedback){
        try{
            if(feedback.getPageIndex()>0)
                feedback.setPageIndex(feedback.getPageIndex()-1);
            return R.ok("查找成功").put("data",feedBackService.findBatchByAllCondition(feedback)).put("total", MyPageHelper.getTotal(feedBackService.findBatchByAllCondition(feedback)));
        }catch (Exception e){
            e.printStackTrace();
            return R.error("程序异常");
        }
    }
}
